/*
 * Copyright 2008-2009 Aying.Net Powered by Fuchun.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package net.aying.html;

/**
 * {@code HtmlContent} 接口定义了使用 {@code Java API} 的方式解析指定 {@code HTML}
 * 网页资源的各种方法。
 * 
 * @author Fuchun
 * @version 1.0, 2009-07-17
 */
public interface HtmlContent {

    /**
     * 获取当前 {@code HTML} 的版本。 <table
     * style="font-family:monospace;table-layout:fixed;" border="1">
     * <tr>
     * <th width="150">HTML 版本</th>
     * <th width="400">HTML 文档类型声明</th>
     * </tr>
     * <tr>
     * <td>HTML 4.01 Frameset</td>
     * <td>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
     * "http://www.w3.org/TR/html4/frameset.dtd"&gt;</td>
     * </tr>
     * <tr>
     * <td>HTML 4.01 Strict</td>
     * <td>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN"
     * "http://www.w3.org/TR/html4/strict.dtd"&gt;</td>
     * </tr>
     * <tr>
     * <td>HTML 4.01 Transitional</td>
     * <td>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
     * "http://www.w3.org/TR/html4/loose.dtd"&gt;</td>
     * </tr>
     * <tr>
     * <td>XHTML 1.0 Frameset</td>
     * <td>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
     * "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"&gt;</td>
     * </tr>
     * <tr>
     * <td>XHTML 1.0 Transitional</td>
     * <td>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     * "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;</td>
     * </tr>
     * <tr>
     * <td>XHTML 1.0 Strict</td>
     * <td>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     * "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;</td>
     * </tr>
     * </table>
     * 
     * @return 当前 {@code HTML} 的版本。
     */
    public String getDoctype();

    /**
     * 获取当前 {@code HTML} 的内容类型。
     * 
     * @return 当前 {@code HTML} 的内容类型。
     */
    public String getContentType();

    /**
     * 获取当前 {@code HTML} 的文本编码。
     * 
     * @return 当前 {@code HTML} 的文本编码。
     */
    public String getEncoding();

    /**
     * 获取当前 {@code HTML} 文档的标题。即 <code>&lt;title&gt;&lt;/title&gt;</code> 标签包含的部份。
     * 
     * @return 当前 {@code HTML} 文档的标题。
     */
    public String getTitle();

    /**
     * 获取当前 {@code HTML} 文档的头部内容。即 <code>&lt;head&gt;&lt;/head&gt;</code> 标签包含的部份。
     * 
     * @return 当前 {@code HTML} 文档的头部内容。
     */
    public String getHead();

    /**
     * 获取当前 {@code HTML} 文档的主内容。即 <code>&lt;body&gt;&lt;/body&gt;</code> 标签包含的部份。
     * 
     * @return 当前 {@code HTML} 文档的主内容。
     */
    public StringBuffer getBody();
    
    /**
     * 获取当前 {@code HTML} 文档的内容。
     * 
     * @return 当前 {@code HTML} 文档的内容。
     */
    public StringBuffer getDocumentContent();
}
